from django.db import models
from django.contrib.auth.models import User
from django.contrib.contenttypes.generic import GenericRelation
from django.utils.datetime_safe import datetime
from django.db.models.base import ModelBase

class Unidad(models.Model):
    identificador = models.CharField(max_length=3)
    
    def __unicode__(self):
        return self.__str__()
    
    def __str__(self):
        return '%s' % self.identificador

class Cuenta(models.Model):
    nombre = models.CharField(max_length=50)
    user = GenericRelation(User)
    
    def __unicode__(self):
        return self.__str__()
    
    def __str__(self):
        return '%s' % self.nombre
    
TIPO_MOVIMIENTO = (
    ('P', 'Prevision'),
    ('R', 'Real'),
)
    
class Movimiento(models.Model):
    asunto = models.CharField(max_length=50)
    unidades = models.ForeignKey('Unidad', default='EUR')
    cuenta = models.ForeignKey('Cuenta')
    cantidad = models.FloatField()
    fecha = models.DateTimeField()
    tipo = models.CharField(default='R', max_length=1, choices = TIPO_MOVIMIENTO)
    
    def __unicode__(self):
        return self.__str__()
    
    def __str__(self):
        return '%s: %.2f %s' % (self.asunto , self.cantidad , self.unidades)
    
    class Meta:
        ordering = ['fecha']

class Conversor(models.Model):
    url_conversor = models.URLField(default='http://es.finance.yahoo.com/divisas/conversor/')
    cantidad = models.IntegerField (default = 0)
    origen = models.ForeignKey('Unidad')
    #destino = models.ForeignKey('Unidad')
    
    def get_url_conversion(self):
        return self.url_conversor.get_default()+'#from='+self.origen+';to='+self.destino+';amt='+self.cantidad

class ConfiguracionCambio(models.Model):
    web_service_nombre_unidad = models.URLField(default="http://www.webservicex.net/CurrencyConvertor.asmx?WSDL")
    moneda_default = models.ForeignKey('Unidad')
    